package org.linloong.modules.apis.ai.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 聊天请求 DTO
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ChatRequest {
    
    /**
     * 用户消息内容
     */
    private String message;
    
    /**
     * 会话 ID（可选，用于继续对话）
     */
    private String conversationId;
    /**
     *  0同时会输出报表的可视化，1是只输出可视化数据，默认是0
     */
    private String visualizationMode;
    /**
     * parameters
     */
    private String parameters;
    
    /**
     * 用户标识（可选）
     */
    private String userId;

    /**
     * 模型名称，如果不指定，默认使用第一个配置的模型
     */
    private String model;

    /**
     * 调用文件上传接口时返回的 fileId 如果有需要拼凑inputs
     */
    private String fileId;
    
    /**
     * 生态效益 综合权重 0.00 - 1.00
     */
    private Float ecoWeight;
    
    /**
     * 经济效益 综合权重 0.00 - 1.00
     */
    private Float economicWeight;
    
    /**
     * 实时温度
     */
    private Float temperature;
    
    /**
     * 实时降水（单位：mm）
     */
    private Float precipitation;
    
    /**
     * 实时湿度（单位：%）
     */
    private Float humidity;
    
    /**
     * 光照时长（单位：小时）
     */
    private Float sunshineDuration;
    
    /**
     * 土壤水分（单位：%）
     */
    private Float soilMoisture;
    
    /**
     * 养分浓度（单位：mg/L）
     */
    private Float nutrientConcentration;
    
    /**
     * 病虫害监测（0-无，1-轻微，2-中等，3-严重）
     */
    private Integer pestMonitoring;
    
    /**
     * 树高（单位：米）
     */
    private Float treeHeight;
    
    /**
     * 胸径（单位：厘米）
     */
    private Float dbh;
    
    /**
     * 发芽日期
     */
    private String germinationDate;
    
    /**
     * 落叶日期
     */
    private String defoliationDate;
    
    /**
     * 开花日期
     */
    private String floweringDate;

    private String modelName;
}